supports - as alias for std{in,out} and tests for error.
double lat1, lon1, lat2, lon2;
int fileline = 0;
- FILE *arcfile = fopen( arcfileopt, "r" );
- if ( arcfile == NULL ) {
- fatal(MYNAME ": Can't open %s for reading.\n",arcfileopt);
- }
+ FILE *arcfile = xfopen( arcfileopt, "r", MYNAME );
lat1 = lon1 = lat2 = lon2 = BADVAL;
while ( !feof(arcfile)) {
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "rb");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "rb", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "wb");
+ file_out = xfopen(fname, "wb", MYNAME);
out_fname = fname;
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
}
static void
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "rb");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "rb", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "wb");
+ file_out = xfopen(fname, "wb", MYNAME);
out_fname = fname;
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
}
static void
#define xxstrappend XSTRAPPEND
#endif /* DEBUG_MEM */
+FILE *xfopen(const char *fname, const char *type, const char *errtxt);
int case_ignore_strcmp(const char *s1, const char *s2);
#include <ctype.h>
#include <time.h>
-#include <errno.h>
#include "defs.h"
static void
gpl_rd_init(const char *fname)
{
- gplfile_in = fopen(fname, "rb");
+ gplfile_in = xfopen(fname, "rb", MYNAME);
if (sizeof(struct gpl_point) != 56) {
fatal(MYNAME, ": gpl_point is %d instead of 56.\n",
sizeof(struct gpl_point));
}
- if (gplfile_in == NULL) {
- fatal(MYNAME, ": '%s' for reading\n", fname);
- }
}
static void
static void
gpl_wr_init(const char *fname)
{
- gplfile_out = fopen(fname, "wb");
- if (gplfile_out == NULL) {
- fatal(MYNAME ": Cannot open '%s' for writing\n", fname);
- }
+ gplfile_out = xfopen(fname, "wb", MYNAME);
}
static void
char ibuf[100] = {'0'} ;
const char *ezsig = "TerraByte Location File";
- file_in = fopen(fname, "rb");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "rb", MYNAME);
fread(ibuf, 52, 1, file_in);
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "wb");
+ file_out = xfopen(fname, "wb", MYNAME);
mkshort_handle = mkshort_new_handle();
-
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
}
static void
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "rb");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "rb", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "wb");
+ file_out = xfopen(fname, "wb", MYNAME);
out_fname = fname;
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
}
static void
void
geo_rd_init(const char *fname)
{
- fd = fopen(fname, "r");
- if (fd == NULL) {
- fatal(MYNAME ":Cannot open %s for reading\n", fname);
- }
+ fd = xfopen(fname, "r", MYNAME);
psr = XML_ParserCreate(NULL);
if (!psr) {
void
geo_wr_init(const char *fname)
{
- ofd = fopen(fname, "w");
- if (ofd == NULL) {
- fatal(MYNAME ":Cannot open '%s' for writing\n", fname);
- }
+ ofd = xfopen(fname, "w", MYNAME);
}
void
static void
rd_init(const char *fname)
{
- FileIn = fopen(fname, "rb");
- if (FileIn == NULL)
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
+ FileIn = xfopen(fname, "rb", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- FileOut = fopen(fname, "wb");
+ FileOut = xfopen(fname, "wb", MYNAME);
FilenameOut = fname;
- if (FileOut == NULL)
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
}
static void
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "rb");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "rb", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "wb");
+ file_out = xfopen(fname, "wb", MYNAME);
out_fname = fname;
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
}
static void
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "r");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "r", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "w");
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
+ file_out = xfopen(fname, "w", MYNAME);
}
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "rb");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "rb", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "wb");
+ file_out = xfopen(fname, "wb", MYNAME);
out_fname = fname;
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
}
static void
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "r");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "r", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "w");
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
+ file_out = xfopen(fname, "w", MYNAME);
mkshort_handle = mkshort_new_handle();
-
}
static void
gpx_rd_init(const char *fname)
{
if ( fname[0] ) {
- fd = fopen(fname, "r");
- if (fd == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname );
- }
+ fd = xfopen(fname, "r", MYNAME);
}
else {
fd = NULL;
{
mkshort_handle = mkshort_new_handle();
- ofd = fopen(fname, "w");
- if (ofd == NULL) {
- fatal(MYNAME ": open %s for writing\n", fname );
- }
+ ofd = xfopen(fname, "w", MYNAME);
}
static void
static unsigned char *HxWFile;
static void *mkshort_handle;
static char fOutname[256];
+#define MYNAME "Holux"
static void rd_init(const char *fname)
{
- file_in = fopen(fname, "rb");
- if (file_in == NULL) {
- fatal("GPSBABEL: Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "rb", MYNAME);
}
waypt_disp_all(holux_disp);
- file_out = fopen(fOutname, "wb");
- if (file_out == NULL) {
- fatal("GPSUTIL: Cannot open %s for writing\n", fOutname);
- }
+ file_out = xfopen(fOutname, "wb", MYNAME);
iWritten = fwrite (HxWFile, 1, GM100_WPO_FILE_SIZE,file_out);
if (iWritten == 0)
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "rb");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "rb", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "wb");
+ file_out = xfopen(fname, "wb", MYNAME);
out_fname = fname;
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
mkshort_handle = mkshort_new_handle();
setshort_length(mkshort_handle, 20);
}
#include <ctype.h>
#include <time.h>
-#include <errno.h>
#include "defs.h"
#include "magellan.h"
/*
* Probably not a com port. Try it as a file.
*/
- magfile_in = fopen(portname, "rb");
- if (magfile_in == NULL) {
- fatal(MYNAME ": Cannot open %s.%s\n",
- portname, strerror(errno));
- }
+ magfile_in = xfopen(portname, "rb", MYNAME);
is_file = 1;
icon_mapping = map330_icon_table;
mag_cleanse = m330_cleanse;
{
struct termios new_tio;
- magfile_in = fopen(portname, "rb");
-
- if (magfile_in == NULL) {
- fatal(MYNAME ": Cannot open %s.%s\n",
- portname, strerror(errno));
- }
+ magfile_in = xfopen(portname, "rb", MYNAME);
is_file = !isatty(fileno(magfile_in));
if (is_file) {
return;
}
- magfile_out = fopen(portname, "w+b");
+ magfile_out = xfopen(portname, "w+b", MYNAME);
magfd = fileno(magfile_in);
tcgetattr(magfd, &orig_tio);
is_file = 1;
}
#else
- magfile_out = fopen(portname, "w+b");
- if (!magfile_out) {
- fatal(MYNAME ": '%s' cannot be opened for writing.\n",
- portname);
- }
+ magfile_out = xfopen(portname, "w+b", MYNAME);
is_file = !isatty(fileno(magfile_out));
#endif
mkshort_handle = mkshort_new_handle();
}
if (is_file) {
- magfile_out = fopen(portname, "w+b");
- if (magfile_out == NULL) {
- fatal(MYNAME ": '%s' cannot be opened for writing.\n",
- portname);
- }
+ magfile_out = xfopen(portname, "w+b", MYNAME);
icon_mapping = map330_icon_table;
mag_cleanse = m330_cleanse;
got_version = 1;
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "rb");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "rb", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "wb");
+ file_out = xfopen(fname, "wb", MYNAME);
out_fname = fname;
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
mkshort_handle = mkshort_new_handle();
setshort_length(mkshort_handle, 20);
}
static void
mapsend_rd_init(const char *fname)
{
- mapsend_file_in = fopen(fname, "rb");
- if (mapsend_file_in == NULL) {
- fatal( MYNAME ": Cannot open '%s' for reading\n", fname);
- }
+ mapsend_file_in = xfopen(fname, "rb", MYNAME);
}
static void
static void
mapsend_wr_init(const char *fname)
{
- mapsend_file_out = fopen(fname, "wb");
- if (mapsend_file_out == NULL) {
- fatal(MYNAME ": Cannot open '%s' for writing\n", fname);
- }
+ mapsend_file_out = xfopen(fname, "wb", MYNAME);
mkshort_handle = mkshort_new_handle();
route_wp_count = 0;
}
static void
mps_rd_init(const char *fname)
{
- mps_file_in = fopen(fname, "rb");
- if (mps_file_in == NULL) {
- fatal(MYNAME ": '%s' for reading\n", fname);
- }
+ mps_file_in = xfopen(fname, "rb", MYNAME);
}
static void
mps_wr_init(const char *fname)
{
if (mpsmergeout) {
- mps_file_out = fopen(fname, "rb");
+ mps_file_out = xfopen(fname, "rb", MYNAME);
if (mps_file_out == NULL) {
mpsmergeout = NULL;
}
fclose(mps_file_temp);
}
rename(fname, tempname);
- mps_file_temp = fopen(tempname, "rb");
+ mps_file_temp = xfopen(tempname, "rb", MYNAME);
strcpy(origname, fname); /* save in case we need to revert the renamed file */
}
}
- mps_file_out = fopen(fname, "wb");
- if (mps_file_out == NULL) {
- fatal(MYNAME ": '%s' for writing\n", fname);
- exit(1);
- }
+ mps_file_out = xfopen(fname, "wb", MYNAME);
}
static void
void
nav_rd_init(const char *fname)
{
- fd = fopen(fname, "r");
- if (fd == NULL) {
- fatal(MYNAME ":Cannot open %s for reading\n", fname);
- }
+ fd = xfopen(fname, "r", MYNAME);
psr = XML_ParserCreate(NULL);
if (!psr) {
nav_wr_init(const char *fname)
{
fatal(MYNAME ": Does not support writing Navicache files.\n");
- ofd = fopen(fname, "w");
- if (ofd == NULL) {
- fatal(MYNAME ":Cannot open '%s' for writing\n", fname);
- }
+ ofd = xfopen(fname, "w", MYNAME);
}
void
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "r");
-
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "r", MYNAME);
mkshort_handle = mkshort_new_handle();
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "w");
-
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
-
+ file_out = xfopen(fname, "w", MYNAME);
mkshort_handle = mkshort_new_handle();
/* set mkshort options from the command line if applicable */
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "r");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "r", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "w");
+ file_out = xfopen(fname, "w", MYNAME);
mkshort_handle = mkshort_new_handle();
-
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
}
static void
int first = 1;
int last = 0;
- FILE *polyfile = fopen( polyfileopt, "r" );
- if ( polyfile == NULL ) {
- fatal(MYNAME ":Can't open %s for reading.\n",polyfileopt);
- }
+ FILE *polyfile = xfopen( polyfileopt, "r", MYNAME );
olat = olon = lat1 = lon1 = lat2 = lon2 = BADVAL;
while ( !feof(polyfile)) {
static void
psit_rd_init(const char *fname)
{
- psit_file_in = fopen(fname, "r");
- if (psit_file_in == NULL) {
- fatal(MYNAME ": '%s' for reading\n", fname);
- }
+ psit_file_in = xfopen(fname, "r", MYNAME);
}
static void
static void
psit_wr_init(const char *fname)
{
- psit_file_out = fopen(fname, "w");
- if (psit_file_out == NULL) {
- fatal(MYNAME ": '%s' for writing\n", fname);
- }
+ psit_file_out = xfopen(fname, "w", MYNAME);
}
static void
static void
psp_rd_init(const char *fname)
{
- psp_file_in = fopen(fname, "rb");
- if (psp_file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ psp_file_in = xfopen(fname, "rb", MYNAME);
}
static void
static void
psp_wr_init(const char *fname)
{
- psp_file_out = fopen(fname, "wb");
+ psp_file_out = xfopen(fname, "wb", MYNAME);
mkshort_handle = mkshort_new_handle();
-
- if (psp_file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
}
static void
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "rb");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "rb", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "wb");
+ file_out = xfopen(fname, "wb", MYNAME);
out_fname = fname;
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
}
static void
static void
rd_init(const char *fname)
{
- infile = fopen(fname, "rb");
- if (infile == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ infile = xfopen(fname, "rb", MYNAME);
}
static void
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "r");
+ file_in = xfopen(fname, "r", MYNAME);
mkshort_handle = mkshort_new_handle();
-
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "w");
+ file_out = xfopen(fname, "w", MYNAME);
thresh_days = strtod(oldthresh, NULL);
-
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
}
static void
if (genurl) {
FILE *urlf;
- urlf = fopen(genurl, "w");
- if (urlf == NULL) {
- fatal(MYNAME ": Cannot open '%s' for writing\n",
- genurl);
- }
+ urlf = xfopen(genurl, "w", MYNAME);
latsz = fabs(maxlat - minlat);
lonsz = fabs(maxlon - minlon);
fclose(urlf);
#if CLICKMAP
if (clickmap) {
- linkf = fopen(clickmap, "w");
- if (linkf == NULL) {
- fatal(MYNAME ": Cannot open '%s' for writing\n",
- clickmap);
- }
+ linkf = xfopen(clickmap, "w", MY NAME);
fprintf(linkf, "<map name=\"map\">\n");
waypt_disp_all(map_plot);
fprintf(linkf, "</map>\n");
static void
rd_init(const char *fname)
{
- file_in = fopen(fname, "r");
- if (file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ file_in = xfopen(fname, "r", MYNAME);
}
static void
static void
wr_init(const char *fname)
{
- file_out = fopen(fname, "w");
- if (file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
+ file_out = xfopen(fname, "w", MYNAME);
}
static void
static void
tpg_rd_init(const char *fname)
{
- tpg_file_in = fopen(fname, "rb");
- if (tpg_file_in == NULL) {
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
- }
+ tpg_file_in = xfopen(fname, "rb", MYNAME);
}
static void
static void
tpg_wr_init(const char *fname)
{
- tpg_file_out = fopen(fname, "wb");
+ tpg_file_out = xfopen(fname, "wb", MYNAME);
mkshort_handle = mkshort_new_handle();
-
- if (tpg_file_out == NULL) {
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
- }
-
waypt_out_count = 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
+#include <errno.h>
static int i_am_little_endian = -1;
static int doswap(void);
void
debug_mem_open()
{
- debug_mem_file = fopen( DEBUG_FILENAME, "a" );
+ debug_mem_file = xfopen( DEBUG_FILENAME, "a", "debug" );
}
void
return src;
}
+/*
+ * Wrapper for open that honours - for stdin, stdout, unifies error text.
+ */
+FILE *
+xfopen(const char *fname, const char *type, const char *errtxt)
+{
+ FILE *f;
+ int am_writing = strchr(type, 'w') != NULL;
+
+ if (0 == strcmp(fname, "-"))
+ return am_writing ? stdout : stdin;
+ f = fopen(fname, type);
+ if (NULL == f) {
+ fatal("%s cannot open '%s' for %s. Error was '%s'.\n",
+ errtxt, fname,
+ am_writing ? "write" : "read",
+ strerror(errno));
+ }
+ return f;
+}
+
+
/*
* Duplicate a pascal string into a normal C string.
*/
xcsv_file_init();
- fp = fopen(fname, "r");
-
- if (!fp)
- fatal(MYNAME ": Cannot read style file: %s\n", fname);
+ fp = xfopen(fname, "r", MYNAME);
do {
memset(sbuff, '\0', sizeof(sbuff));
xcsv_read_style(styleopt);
}
- xcsv_file.xcsvfp = fopen(fname, "r");
+ xcsv_file.xcsvfp = xfopen(fname, "r", MYNAME);
- if (xcsv_file.xcsvfp == NULL)
- fatal(MYNAME ": Cannot open %s for reading\n", fname);
}
static void
xcsv_read_style(styleopt);
}
- xcsv_file.xcsvfp = fopen(fname, "w");
+ xcsv_file.xcsvfp = xfopen(fname, "w", MYNAME);
xcsv_file.fname = (char *)fname;
- if (xcsv_file.xcsvfp == NULL)
- fatal(MYNAME ": Cannot open %s for writing\n", fname);
-
/* set mkshort options from the command line */
if (global_opts.synthesize_shortnames) {